package com.yy.mapper;

import com.yy.domain.PayContractFee;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;


/**
 * 合同收费项目Mapper接口
 * 
 * @author yy
 * @date 2023-10-30
 */
@Mapper
public interface PayContractFeeMapper 
{
    /**
     * 查询合同收费项目
     * 
     * @param id 合同收费项目主键
     * @return 合同收费项目
     */
    public PayContractFee selectPayContractFeeById(Long id);

    /**
     * 查询合同收费项目列表
     * 
     * @param payContractFee 合同收费项目
     * @return 合同收费项目集合
     */
    public List<PayContractFee> selectPayContractFeeList(PayContractFee payContractFee);

    /**
     * 新增合同收费项目
     * 
     * @param payContractFee 合同收费项目
     * @return 结果
     */
    public int insertPayContractFee(PayContractFee payContractFee);

    /**
     * 修改合同收费项目
     * 
     * @param payContractFee 合同收费项目
     * @return 结果
     */
    public int updatePayContractFee(PayContractFee payContractFee);

    /**
     * 删除合同收费项目
     * 
     * @param id 合同收费项目主键
     * @return 结果
     */
    public int deletePayContractFeeById(Long id);

    /**
     * 批量删除合同收费项目
     * 
     * @param ids 需要删除的数据主键集合
     * @return 结果
     */
    public int deletePayContractFeeByIds(Long[] ids);

    /**
     * 根据合同ID查询合同的收费项目
     *
     * @param id
     * @return
     */
    List<PayContractFee> queryContractFeeItemByContractId(@Param("id") Long id);

    /**
     * 根据合同ID查询合同的待收费收费项Id
     * @param contractId
     * @return
     */
    List<Long> queryContractFeeItemIdsByContractId(@Param("contractId") Long contractId);

    /**
     * 根据收费项目的ID和合同Id查询出当前合同的收费项目
     *
     * @param contractId
     * @param ids
     * @return
     */
    List<PayContractFee> queryContractFeeItemByContractIdAndFeeItemIds(@Param("contractId") Long contractId, @Param("ids") Long[] ids);
}
